به کمک VBA بر رنگها در اکسل حکومت کنید .
سلام به سافت پلاس خوش آمدید و امروز می خواهیم در زمینه کار با رنگها در برنامه نویسی VBA با هم چند تا مطلب و نکته کاربردی جالب و کاربردی را یاد بگیریم .
یکی از قابلیت های بسیار کاربردی برنامه نویسی VBA این است که به کمک کدهای ساده ای می شود یک طیف وسیعی از کارها را در خصوص کار با رنگها در محیط اکسل انجام داد .
اگر دوست دارید که :
– بدانید که چطور می شود به یک سلول یا محدوده ای از سلول ها یک رنگ خاص را اختصاص داد ؟
-بدانید که چطور می شود متوجه شد که یک سلول خاص دارای چه رنگی هست ؟
-یاد بگیرید که چطور می شود یک محدوده از سلول ها را بر اساس رنگها قفل کنید ؟
– یاد بگیرید که چطور می شود یک سری از محاسبات را صرفا بر اساس رنگ سلول ها انجام داد ؟
همه اینها و البته در کنار اینها کلی مطلب و نکته کاربردی دیگر در زمینه کار با رنگها در اکسل توسط برنامه نویسی وی بی ای را در این مطلب خواهید خواند .
من علیرضا شهرآئینی هستم و هر آنچه که در کار با رنگها در برنامه نویسی VBA لازم باشد را در این مطلب در اختیارتان قرار خواهم داد .
پس با من همراه باشید .
قدم اول در کار با رنگها در برنامه نویسی VBA
توی قدم اول می خواهیم یاد بگیریم که چطور می شود به یک سلول یا محدوده ای از سلول ها در شیت های اکسل یک رنگ خاص را اختصاص بدهیم .
برای اینکه بشود به یک سلول از طریق محیط کد نویسی یک رنگ خاص را اختصاص بدهیم لازم است که اول به کمک یک سری کد ساده به آن سلول خاص دسترسی پیدا کنیم .
به کدهای زیر توجه کنید .
Range("A1").Interior.Color = RGB(0, 0, 255)
این کدها رنگ سلول A1 را برای ما به رنگ آبی در می آورد .
خروجی کدهای زیر هم دقیقا به شکل کدهای بالا می باشد .
Cells(1,1).Interior.Colorindex=32
یا مثلا به کدهای زیر نگاه کنید .
[A1].Interior.Color=15773696
تا به اینجا ما سه تا خط کد جداگانه را نوشتیم . درست است که این سه تا خط از هم جدا هستند اما وقتی که اجرا می شوند خروجی هر سه تا خط از این کدها دقیقا با هم یکی خواهد بود .
اما چند تا نکته در مورد این کدها وجود دارد :
نکته اول این است که برای دسترسی به یک سلول خاص در اکسل سه تا روش وجود دارد و ما می توانیم بنابر نیاز و سلیقه خودمان از یکی از این روش ها یا متدها برای دسترسی به یک سلول خاص استفاده کنیم .
نکته دوم هم در خصوص روش هایی است که به کمک آنها ما می توانیم یک رنگ خاص را به یک سلول اختصاص دهیم . ما در اینجا سه روش را مورد استفاده قرار دادیم .
مطلب مرتبط : کار با رنگها در اکسل به کمک برنامه نویسی VBA
چطور به یک محدوده از سلول ها رنگ دهی کنیم ؟
در قدم دوم می خواهیم یاد بگیریم که چطور می شود یک محدوده از سلول ها را در اکسل با استفاده از کدهای VBA به رنگ مورد نظر خودمان در بیاوریم .
مثلا فرض کنید که می خواهیم محدوده سلول های A1 تا C10 را مثلا به همان رنگ آبی دربیاوریم . برای این کار از کدهای زیر استفاده می کنیم .
Range("A1:C10").Interior.Color = RGB(0, 0, 255)
یا به کدهای زیر توجه کنید .
Cells(Cells(1,1),Cells(10,3).Interior.Colorindex=32
همین طور به کدهای زیر .
["A1:C10"].Interior.Color=15773696
اینجا هم روش کار دقیقا مثل حالتی است که ما می خواستیم یک سلول را رنگ دهی کنیم . فقط در این حالت به جای یک سلول محدوده ای از سلول ها را برای اکسل معرفی می کنیم .
پس تا به اینجا متوجه یک موضوع خیلی مهم شدیم . آن هم اینکه اگر می خواهیم هر تغییری را چه در یک سلول و چه در محدوده ای از سلول ها اعمال کنیم در قدم اول باید به آن سلول یا سلول ها دسترسی پیدا کنیم .
برای این دسترسی هم روش های مختلفی وجود دارد . اگر دوست دارید با هر کدام از این روش ها بیشتر آشنا شوید می توانید از مطلب زیر استفاده کنید .
مطلب مرتبط : دسترسی و کار با محدوده ها در اکسل به کمک برنامه نویسی VBA
تعیین رنگ یک سطر از سلول ها
بعضی از مواقع نیاز دارید که به جای یک محدوده یا یک سلول خاص در اکسل کل سلول های موجود در یک سطر را به یک یک رنگ خاص در بیاورید .
تخصیص رنگ در این حالت مانند روش های قبلی است فقط تفاوت در آدرس دهی سلول های یک ردیف است .
در این حالت از می توانید از کدهایی مثل کد زیر استفاده کنید .
Sub test()
Rows(2).Interior.Color = vbRed
End Sub
با استفاده از کدهای بالا ما کل ردیف شماره 2 را در شیت جاری اکسل به رنگ قرمز درآوردیم .
اما بیایید یک حالت دیگر را هم بررسی کنیم . به تصویر زیر نگاه کنید .
فرض کنی که در تصویر بالا می خواهید کاری کنید که اکسل بصورت خودکار کل سلول هایی را که نام فامیلی آنها کلمه “رضایی” وجود دارد را برای ما به رنگ قرمز دربیاورد .
برای این کار می توانید از کدهایی مثل کد زیر استفاده کنید .
sub test()
dim rng as range
dim mycell as range
set rng =range("A6:F20")
for each mycell in myrange
if mycell.value="رضا " then
mycell.interior.color=vbred
end if
next
end sub
چطور بفهمیم سلول های یک محدوده چه رنگی هستند ؟
تا به اینجا هر چه که گفتیم در مورد این بود که چطور می شود به یک سلول یا یک محدوده از سلول ها یک رنگ خاص را اختصاص بدهیم .
اما حالا بیایید قضیه را بر عکس کنیم . فرض کنید که یک محدوده از سلول ها را به شما داده اند و حالا شما باید بدانید که رنگ سلول ها چه رنگی است ؟
می پرسید که چرا باید به یک همچین چیزی احتیاج پیدا کنید ؟
فرض کنید که توی یک محدوده از سلول ها بعضی از سلول ها به رنگ آبی و بعضی دیگر به رنگ قرمز هستند . حالا می خواهید که اعدادی را که داخل سلول های آبی رنگ هستند را با هم جمع کنید .
پس اینجا اولین کاری که باید انجام بدهید تشخیص رنگ مربوط به پس زمینه سلول هاست .
برای این کار می توانید از کدهایی مانند کد زیر استفاده کنید .
sub getRGB1() As String
Dim xColor As String
xColor = CStr("A1".Interior.Color)
xColor = Right("000000" & Hex(xColor), 6)
getRGB1 = Right(xColor, 2) & Mid(xColor, 3, 2) & Left(xColor, 2)
End sub
مطالب زیر را حتما مطالعه کنید
ذخیره نمودارها با کدهای VBAبصورت تصویر+راهنمای گام به گام
لیست باکس ها در برنامه نویسی VBA ؛ تمام چیزی که باید بدانید .
۷ اشتباه در کدنویسی VBA که ممکن است شما هم مرتکب شوید ؟
توی این آموزش راجع به اشتباهاتی که ممکن است در برنامه نویسی VBA مرتکب آنها شوید صحبت می کنیم .
با این خطای Runtime Error 1004 در VBA چکار کنیم ؟
در این آموزش راجع به خطایی به اسم Run time error 1004 در برنامه نویسی وی بی ای با هم صحبت می کنیم .
چطور با کدهای VBA اطلاعات را از اکسس به ورد بفرستیم؟
کلمه کلیدی set و کاربردهای آن در برنامه نویسی VBA
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام بی زحمت یه شماره تماس بذارید من چند تا سوال دارم ۱۶*****۰۹۱۲ این شماره منه
سلام می تونید از طریق دایرکت اینستاگرام سوالتون رو مطرح کنید